1. Field of the Invention
The present invention is generally directed to autonomous systems. More particularly, the present invention is directed to the use of simulated neurons in autonomous systems.
2. Background Art
An autonomous system can be trained to operate in a real or virtual world. Once trained, an ideal autonomous system would operate with minimal or no human direction. Several different types of technologies have been used in attempts to develop a truly autonomous system. These technologies include, for example, artificial intelligence, neural networks, and brain-based devices.
Artificial intelligence attempts to achieve autonomous behavior based on rules set forth in a computer program. To achieve autonomous behavior, a computer program would likely require a very large number (e.g., millions, billions, or trillions) of rules. Due to the number of rules likely required, artificial intelligence is currently a disfavored option for developing a truly autonomous system.
Neural networks attempt to achieve autonomous behavior based on a network of simulated neurons that are connected in a manner suggestive of connections between real neurons in humans. In humans, a first neuron may fire in response to an external stimulus. In response to the firing of the first neuron, other neurons connected to the first neuron may also fire. Similarly, a first simulated neuron in an input layer of a neural network can become active (e.g., fire) in response to stimulus to the neural network. One or more simulated neurons connected to the first simulated neuron may become active (e.g., fire) in response to the activity (e.g., firing) of the first neuron. Whether the activity of the first simulated neuron causes other simulated neurons to become active is dependent on at least two factors: (i) a weighting function associated with a connection between the first simulated neuron and each other simulated neuron to which the first simulated neuron is connected; and (ii) the threshold activity level required to cause each other simulated neuron to become active. To train the neural network (i.e., to cause the neural network to behave in a desired way), the weighting function associated with each connection is adjusted in response to different types of stimuli, but the connections between the simulated neurons remain the same. A typical neural network includes at least two layers of simulated neurons (e.g., an input layer and an output layer) and may optionally include additional layers (e.g., hidden layers). In a simple two-layer neural network, each simulated neuron in the first layer is connected to one or more simulated neurons in the second layer, and each connection is associated with a weighting function.
Brain-based devices are similar to neural networks, but more-closely model real neurons in humans. Like neural networks, brain-based devices attempt to achieve autonomous behavior based on a network of simulated neurons that are connected in a manner suggestive of connections between real neurons in humans. However, unlike neural networks, brain-based devices may include different types of connections (e.g., excitatory or inhibitory) between the simulated neurons, and the anatomy (e.g., topology) of the connections in a brain-based device may be more complex than in neural networks. In addition, in a brain-based device the activity of a first simulated neuron may be based not only on the activity of other simulated neurons to which it is connected (like in neural networks), but also based on the relative time when the other simulated neurons are active (like in real neural systems in animals and humans).
Regardless of whether artificial intelligence, neural networks, or brain-based devices are used, an autonomous system should ideally—at a minimum—be able to identify content in the real or virtual world in order to operate in a self-sufficient manner. Once content in the real or virtual world is identified, the autonomous system can respond or be configured to respond in an appropriate manner based on the identified content. Unfortunately, currently available autonomous systems have difficulty identifying and/or distinguishing content in real-world environments.
Given the foregoing, what is needed is an autonomous system that can better identify content in a real-world environment, and applications thereof.